package org.huawei260.TiKu.ODsuanfa;

import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;

/**
 * @Author: qingle
 * @Date: 2024/10/28-16:11
 * @Description: 2527 【模拟】2024D结队编程
 * @version: 1.0
 */
public class D_2024D_2527__模拟结队编程 {
//	class Solution {
//		List<List<Integer>> res = new LinkedList<>();
//		/* 主函数，输⼊⼀组不重复的数字，返回它们的全排列 */
//		public List<List<Integer>> permute(int[] nums) {
//			// 记录「路径」
//			LinkedList<Integer> track = new LinkedList<>();
//			backtrack(nums, track);
//
//			// 所有排列结果的长度
//			return res;
//		}
//		void backtrack(int[] nums, LinkedList<Integer> track) {
//			// 触发结束条件
//			if (track.size() == nums.length) {
//				res.add(new LinkedList(track));
//				return;
//			}
//			for (int i = 0; i < nums.length; i++) {
//				// 排除不合法的选择
//				if (track.contains(nums[i])) {
//					continue;
//				}
//				// 做选择
//				track.add(nums[i]);
//				// 进⼊下⼀层决策树
//				backtrack(nums, track);
//				// 取消选择
//				track.removeLast();
//			}
//		}

	/**
	 * 计算从m个不同的元素中取出k个元素的排列数
	 *
	 * @param m 总元素数
	 * @param k 取出的元素数
	 * @return 排列数
	 */
	public static long permutationCount(int m, int k) {
		long result = 1;
		for (int i = 0; i < k; i++) {
			result *= (m - i);
		}
		return result;
	}

	/**
	 * 计算从m个不同的元素中选择k个元素的组合数
	 *
	 * @param m 总元素数
	 * @param k 选择的元素数
	 * @return 组合数
	 */
	public static long combinationCount(int m, int k) {
		if (k > m) {
			return 0; // 如果k大于m，则没有可能的组合
		}
		long result = 1;
		// 计算分子 m*(m-1)*...*(m-k+1)
		for (int i = m; i > m - k; i--) {
			result *= i;
		}
		// 计算分母 k! = k*(k-1)*...*1
		long denominator = 1;
		for (int i = 2; i <= k; i++) {
			denominator *= i;
		}
		// 计算组合数
		return result / denominator;
	}

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		sc.nextLine();
		int[] nums = new int[n];
		for(int i = 0; i < n; i++) {
			nums[i] = sc.nextInt();
		}


//		System.out.println(permutationCount(n, 3));
		System.out.println(combinationCount(n, 3));

	}
//	}
}
